/*
  学习目标：两种枚举类型
  1. 数字枚举
  特点: 
    1.1 可以省略值, 默认从0开始递增
    1.2 如果设置了第一个属性的值, 自动从第一个值开始递增
  2. 文字枚举
    不可以省略值
*/

// 🔔区别:
// 字面量 + 联合 : 提供一组可选的取值返回
// 枚举 : 提供一组可选的取值返回
// 1.1 枚举: 只能表示字符串 或 数字
// 1.2 字面量 + 联合, 可以表示任意数据类型, 使用范围更广一点

// 2. 枚举: 既可以当做类型使用, 写在注解里
//          又可以当做值使用, 参与JS的运算

type MyName = 'add' | 'del';
type MyNumber = 0 | 1 | 2;
type MyObj = { type: 'add' } | { type: 'del' };

function test(obj: MyObj) {}

test({ type: 'add' });

enum Status {
  RuZhi = 'RuZhi',
  Lizhi = 'Lizhi',
}

function delUser(status: Status) {
  console.log('status  ----->  ', status);
}

const aa = Status.RuZhi;
console.log('aa  ----->  ', aa);
